///////////////////////////////////////////////////////////////////////////////
//-----------------------------------------------------------------------------
#ifndef __SCENE_MANAGER_H__
#define __SCENE_MANAGER_H__

#include <Config.h>
#include <string>

class	Object;
class	Camera;
class	Culler;

//-----------------------------------------------------------------------------

class SceneManager
{
public:
	/*
	//	Constructor - destructor
	*/
							SceneManager();
	virtual					~SceneManager();

	/*
	//	Draw
	*/
	void					UpdateScene(f32 dt);
	void 					DrawScene();

	/*
	//	Child-parent hierarchy
	*/	
	Object*					GetRootNode();
	
	/*
	*	Camera
	*/
	Camera*					GetCamera();
	void					SetCamera(Camera* camera);

	/*
	*	Load
	*/
	//Object*					LoadObject(std::string filename);
	void					LoadScene(std::string filename);

	/*
	*	Culler
	*/
	Culler*					GetCuller();
	void					SetCuller(Culler*	culler);
	
private:

	Object*					m_rootNode;
	
	Camera*					m_camera;

	Culler*					m_culler;

};

#endif // __SCENE_MANAGER_H__
//-----------------------------------------------------------------------------
///////////////////////////////////////////////////////////////////////////////
